# ------------------------------------------
# 向量转换为矩阵（1维 ---> 2维）
# ------------------------------------------

my_vector <- c(1:5)   # 创建一个向量并赋值给my_vector
my_vector   # 查看my_vector
my_matrix <- as.matrix(my_vector)   # 通过as.matrix()函数将my_vector转换为矩阵,并赋值给my_matrix
my_matrix   # 查看my_matrix
is.matrix(my_matrix)  # 通过is.matrix()函数判断my_matrix是否为矩阵
is.vector(my_matrix)  # 通过is.vector()函数判断my_matrix是否为向量

# ------------------------------------------
# 向量转换为数组（1维 ---> 3维）
# ------------------------------------------

my_array <- as.array(my_vector)   # 通过as.array()函数将my_vector转换为数组,并赋值给my_array
my_array  # 查看my_array
is.array(my_array)    # 通过is.array()函数判断my_array是否为数组
is.vector(my_array)   # 通过is.vector()函数判断my_array是否为向量
is.matrix(my_array)   # 通过is.matrix()函数判断my_array是否为矩阵

# ------------------------------------------
# 矩阵转换为数组（2维 ---> 3维）
# ------------------------------------------

my_matrix <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)  # 创建一个2x3的矩阵  
my_matrix   # 查看my_matrix
my_array <- as.array(my_matrix)   # 通过as.array()函数将my_matrix转换为数组,并赋值给my_array
my_array  # 查看my_array

is.matrix(my_matrix)  # 通过is.matrix()函数判断my_matrix是否为矩阵
is.array(my_array)    # 通过is.array()函数判断my_array是否为数组

is.matrix(my_array)   # 通过is.matrix()函数判断my_array是否为矩阵
is.array(my_matrix)  # 通过is.array()函数判断my_matrix是否为数组

class(my_array)       # 通过class()函数判断my_array的数据结构类型
class(my_matrix)       # 通过class()函数判断my_array的数据结构类型

# ------------------------------------------
# 将矩阵转换为数据框（2维 ---> 2维）
# ------------------------------------------

my_dataframe <- as.data.frame(my_matrix)    # 通过as.data.frame()函数将my_matrix转换为数据框,并赋值给my_dataframe 
is.data.frame(my_dataframe)   # 通过is.data.frame()函数判断my_dataframe是否为数据框

# ------------------------------------------
# 矩阵是否可以转换为向量（2维 ---> 1维）
# ------------------------------------------

my_vector1 <- as.vector(my_matrix)    # 通过as.vector()函数将my_matrix转换为向量,并赋值给my_vector1
my_vector1    # 查看my_vector1
is.vector(my_vector1)   # 通过is.vector()函数判断my_vector1是否为向量

# -----------------------------------------------------------
# 三维的数组是否能够转换为向量与矩阵呢？（3维 ---> 1维或2维）
# -----------------------------------------------------------

arr <- array(1:24, dim = c(2, 3, 4))  # 创建一个2*3*4的数组
arr   # 查看arr
vec <- as.vector(arr)   # 通过as.array()函数将arr转换为向量,并赋值给vec
vec   # 查看vec
is.vector(vec)  # 通过is.vector()函数判断vec是否为向量